【笔记】Excel 2021|(二)VBA删除数组中的一个元素、循环时删除一行、选择一列删除指定一行

您所在的位置:网站首页 python array 删除元素 【笔记】Excel 2021|(二)VBA删除数组中的一个元素、循环时删除一行、选择一列删除指定一行

【笔记】Excel 2021|(二)VBA删除数组中的一个元素、循环时删除一行、选择一列删除指定一行

2023-06-03 09:28| 来源: 网络整理| 查看: 265

主要问题是循环的时候删除一行比较麻烦,因为删除了一行后,循环仍然直接访问后一行,会导致一定的异常。

文章目录 选择一列,删除指定一行删除数组中的一个元素方法1:利用动态数组,在循环中条件判断删除方法2:删除数组中的指定值总结:推荐采用方法1

选择一列,删除指定一行

以下代码是选择一列删除指定一行的稳妥保险的删除方法:

Columns("G:G").Select '选择一列 i = 1 '定义一个循环变量,来控制参与循环的元素 While (IsEmpty(Selection(i)) = False) '用是否遇到空单元格来判断是否遍历完成 If (InStr(1, Selection(i), "特定条件", 0) > 0) Then nowRow = Selection(i).Row '获得当前行号 Rows(nowRow).Delete '删掉当前行 i = i - 1 '抵消删除对循环的影响 End If i = i + 1 '循环中循环变量正常地加1 Wend 删除数组中的一个元素

不过,删除数组中的一个元素却不方便这样做。因为VBA貌似没提供数组.delete(index)这种好用的函数。

方法1:利用动态数组,在循环中条件判断删除

但可以结合动态数组,将删除元素的数组赋值给新数组,如下代码。其中的b数组便是删除元素后的新数组:

arr1 = Array(1, "特定条件", 3, 999, 1, "特定条件", 3) '定义一个数组 Dim b() As String '定义新数组 k = 0 '记录新数组的长度 For i = 0 To UBound(arr1) '用数组长度来判断是否遍历完成 If (InStr(1, arr1(i), "特定条件", 0)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3